home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 516 / read_me.txt < prev    next >
Text File  |  1991-09-22  |  23KB  |  501 lines

  1.                              Turbo-Ass V1.1
  2.                               ©1989 Σ-soft
  3.                     von Markus Fritze & Sören Hellwig
  4.  
  5. 1.1 Einleitung
  6. Nach   langem   hin   und   her   haben   wir  uns  entschlossen  unser
  7. Assembler-Paket  als  Shareware  auf den Markt zu werfen. Der Assembler
  8. wurde  vormals durch OMIKRON.Software unter dem Namen OMIKRON.Assembler
  9. verkauft.  Die Shareware-Version ist jedoch eine erweiterte Version des
  10. OMIKRON.Assemblers.  Sie  enthält  weniger Fehler, weitere Features und
  11. ist  noch  ein  wenig  schneller. Zum Paket gehört (natürlich) auch ein
  12. Debugger,  der Bugaboo (vormals OMIKRON.Debugger). Somit kann nun jeder
  13. User  in  den Genuß eines schnellen und leistungsfähigen Assemblers und
  14. Debuggers kommen; zumal es zwar viele Programmiersprachen als Shareware
  15. bzw. PD gibt, aber noch keinen (vernünftigen) Assembler.
  16.  
  17. DIE  FIRMA  OMIKRON.SOFTWARE  HAT  NICHTS MIT DIESEM ASSEMBLER-PAKET ZU
  18. TUN.  Σ-SOFT  IST  ALLEINIGER  INHABER  ALLER  RECHTE  AM ASSEMBLER UND
  19. DEBUGGER!
  20.  
  21. Dieser  Text  ist  nicht  als  eine  Anleitung gedacht, sondern nur als
  22. Kurzeinführung  in den Assembler. Die vollständig Anleitung auf ca. 240
  23. Seiten gibt es bei den Autoren.
  24. Zur  Not  kann auch das ST-Magazin 11/89 und 12/89 herangezogen werden.
  25. Dort hat die Referenzkarte den Assembler und Debugger zum Thema.
  26.  
  27. Nachtrag:  Es fehlen ziemlich viele Features in diesem READ_ME, es wird
  28.            mir einfach zu viel... (Markus)
  29.  
  30. 1.2 Features des Turbo-Ass
  31. -Einfache und durchdachte (!) Bedienung.
  32. -Der Assembler übersetzt durchschnittlich 1 300 000 Zeilen pro Minute.
  33. -Syntax-Check bereits bei der Eingabe. Teilweise sogar Semantik-Check!
  34.  Es  werden  sowohl  Tippfehler, wie auch doppelt vergebene Symbolnamen
  35.  bereits bei der Eingabe gemeldet.
  36. -Viele  besonders  leistungsfähige  Funktionen  des Editors, z.B. Suche
  37.  von  Symbolen,  Ersetzen  von  Symbolen,  Einklappen vonProgrammteilen
  38.  (wie in GFA-Basic 3.0), u.v.a.m.
  39. -Fantastische Kombination von Debugger und Assembler. Bei einem Absturz
  40.  eines  Programms  im  Debugger  kann  der  Assembler  automatisch  die
  41.  Absturzadresse in eine Zeilennummer umrechnen!!!
  42. -Eigene   Tastatur-  und  Bildschirmtreiber  =>  selbst  bei  härtesten
  43.  Programmabstürzen funktionieren Assembler und Debugger noch.
  44. -KEINE Makros!!!
  45. -u.v.a.m.
  46.  
  47. 1.3 Was ist Shareware
  48. -Jeder  kann/darf/muß/soll  den  Turbo-Ass kopieren! Dabei sollten aber
  49.  stets ALLE (!) Dateien mitkopiert werden.
  50. -Wem den Assembler gefällt, sollte uns fairerweise 50DM überweisen. Das
  51.  hat für alle Parteien vorteile:
  52.  
  53.  Für uns:
  54.  -Wir  arbeiten  nicht ganz umsonst (im Turbo-Ass stecken 3 "Mannjahre"
  55.   Arbeit)
  56.  
  57.  Für den User:
  58.  -Er bekommt eine 240 Seiten starke Anleitung
  59.  -Er bekommt die neuste Version mit persönlicher Seriennummer
  60.  -Er bekommt das erste Update kostenlos
  61.  -Er erhält bei gefundenen Fehlern eine fehlerfreie Version
  62.  -Er kann sich bei Problemen an uns wenden
  63.  -Er  bekommt  für  jeden User, der bei Registierung seine Seriennummer
  64.   angibt,   10DM   (allerdings   maximal   10  mal,  wir  wollen  keine
  65.   PD-Vertriebe  finanzieren).  Das  Geld  ist also eine "Entschädigung"
  66.   für das Vorführen des Assemblers und das Kopieren.
  67.  -Nochmal:  Läßt  sich jemand registrieren, so gibt er die Seriennummer
  68.   des  vorher  benutzen Assemblers an. Der User, dem diese Seriennummer
  69.   gehört, bekommt vom uns 10DM. Alles klar?
  70.  
  71. Wer diese Angebot annehmen will, wende sich bitte an:
  72.  
  73.                 Markus Fritze
  74.                 Birkhahnkamp 38
  75.                 2000 Norderstedt 1
  76.                 Tel: 040/5223955
  77.                      (ab 18Uhr, auch am Wochenende (NIE VOR 12UHR!!!))
  78.                 BLZ: 20069111, Norderstedter Bank
  79.                      Kontonummer: 407860
  80.  
  81. Ich  bitte  allerdings  teilweise um etwas Geduld; ich hoffe die meiste
  82. Post  am  selben  Tag zu erledigen, wenn aber keine Anleitungen mehr da
  83. sind  oder  wenn  wir gerade einige Neuerungen  implementieren, kann es
  84. schon  mal  etwas  dauern (Wenn nach 2-3 Wochen allerdings nix passiert
  85. kann eine Anfrage klären, ob die Post auch angekommen ist).
  86.  
  87.  
  88. 1.4 Hardwarevorraussetzungen
  89. Atari  ST mit 512k, wobei allerdings erst ab 1Mb Assembler und Debugger
  90. gemeinsam  im  RAM  gehalten  werden können, was seinerseits wieder ein
  91. sehr  wirksames  Debugging  erst  ermöglicht. Die hohe Auflösung bietet
  92. sich   wohl   eher   an,   als  die  mittlere  Auflösung  (Ist  einfach
  93. augenfreundlicher);  aber der Turbo-Ass läuft sowohl in Farbe, wie auch
  94. in S/W.
  95.  
  96. 1.5 Installation
  97. TURBOASS.PRG,  TURBOASS.CFG, TURBOASS.DAT, BUGABOO.PRG und CALL.PRG auf
  98. eine Disk, bzw. in einen Ordner kopieren. Das war's.
  99.  
  100. 1.6 Zu den Autoren
  101. Sören  Hellwig und ich (Markus Fritze) sind zur Zeit beide 21 Jahre alt
  102. (nein,  nicht  zusammen...)  und studieren technische Informatik an der
  103. FH-Wedel  bei  Hamburg.  Deswegen  bitte  wir  auch  teilweise um etwas
  104. Geduld,  wenn  Anfragen  nach  Updates,  etc.  kommen; das Studium geht
  105. leider vor. Zudem beantworte ich jeden Brief, der Rückporto beinhaltet.
  106. Post  ohne  Rückporto  wird  nur  in  Ausnahmefällen  beantwortet  (Zur
  107. Registrierung ist KEIN Rückporto nötig!)
  108.  
  109. 1.7 Haftung/Rechte
  110. Alle  Rechte  am  Turbo-Ass  liegen  bei  Σ-soft.  Wobei  jeder  seinen
  111. Assembler  beliebig  kopieren  darf.  Auch  das Upload in Mailboxen ist
  112. erlaubt.  Der  Turbo-Ass  und  das Handbuch wurden mit größter Sorgfalt
  113. erstellt.  Leider  sind  Fehler nie auzuschließen, deswegen möchten wir
  114. sie   darauf   hinweisen,   daß   wir   weder  eine  Garantie  für  die
  115. Fehlerfreiheit  geben, noch die Haftung für irgendwelche Folgen, gleich
  116. ob  durch  Fehler  im  Handbuch,  in  der Software oder in der Hardware
  117. verursacht,  übernehmen  können.  Es wird wohl jeder verstehen, daß wir
  118. keine  besondere  Begeisterung  verspüren,  wenn  jemand behauptet, der
  119. Assembler  habe  im seine Platte mit Sourcetexten im Werte von mehreren
  120. Millionen  Mark  zerstört,  uns auf Schadenersatz verklagen will. Also:
  121. Benutzung  auf  eigene  Gefahr!  (Dieser  Abschnitt gilt wohl bei allen
  122. Softwarefirmen.
  123.  
  124.  
  125. 2 Der Assembler
  126.  
  127. 2.1 Benutzeroberfläche
  128. Die  Benutzeroberfläche  ist  nicht  von  GEM  o.ä.  abhängig, d.h. neu
  129. programmiert,  das  hat  den  Vorteil, daß der Assembler sicherer gegen
  130. Abstürze  und  auch  schneller ist. Zudem konnten einige nette Features
  131. implementiert werden. Trotzdem sollte die Umstellung von GEM wohl nicht
  132. ins  Gewicht fallen. Die kleinen Buchstaben in den Buttons bewirken mit
  133. ALT zusammen gedrückt, das Anklicken des Buttons wie mit der Maus.
  134.  
  135. 2.2 Die Maus im Assembler
  136. Man  kann  mit  der Maus eine ganze Menge Dinge machen, hier sei jedoch
  137. nur die Benutzung im Assembler erklärt:
  138.  
  139. Im Sourcetext:
  140. Linke Maustaste:
  141. Einfachklick: Cursor setzen
  142. langer Klick: Block markieren (mit Scrollen)
  143. Doppelklick : Sprung zur Definition des angeklickten Symbols
  144.  
  145. Rechte Maustaste:
  146. Einfachklick: Sourcetext scrollen (nur am Rand klicken!)
  147. Doppelklick : Formel in den Rechner übernehmen
  148.  
  149. In der Statuszeile:
  150. einfach alles mal mit links bzw. rechts anklicken...
  151.  
  152. 2.3 Der Editor
  153. Jede  eingegebene Zeile wird automatisch auf ihren Syntax und teilweise
  154. auch  auf  die  Semantik überprüft. Wenn die Zeile fehlerfrei ist, wird
  155. sie  sofort  formatiert ausgegeben. Bei einem Eingabefehler wird in der
  156. Statuszeile die Fehlermeldung angezeigt.
  157.  
  158. 2.4 Besonderheiten
  159. Als Adressierungsart wird auch "absolut short" direkt unterstützt. Dazu
  160. ist  hinter  der  Adresse  ".w"  anzugeben.  Line-A-Routinen können mit
  161. "LINEA #Nummer" eingegeben werden. Der Assembler wandelt nicht-Motorola
  162. Eingaben wenn möglich automatisch in das Motorola-Format um.
  163.  
  164. 2.5 Optimierungen
  165. Der  Assembler  kann  einige  Optimierungen  selbstständig finden. Dazu
  166. gehören:
  167. Absolut lang    -> relativ
  168. relativ         -> relativ short
  169. Absolut lang    -> PC-relativ
  170. MOVE.L #xx,A0   -> LEA xx,A0 (wenn dannach PC-relativ was bringt)
  171. MOVE.L #xx,-(SP)-> PEA xx,A0 (wenn dannach PC-relativ was bringt)
  172. Ferner  werden  einige für C-Compiler typische Sprünge gefunden (z.B. 2
  173. aufeinanderfolgende BRA, wobei das 2.BRA nie angesprungen werden kann)
  174. Wenn der Assembler optimieren kann, erscheint nach dem Assemblieren ein
  175. Button  "ANPASSEN",  welcher  die Optimierungen im Sourcetext vornimmt.
  176. Dabei kann auch zurück-"optimiert" werden, wenn dies nötig sein sollte.
  177.  
  178. 2.6 Formeln
  179. Alles was so Standard ist: + - * / ! (log.NOT) ~ (NOT bzw. EOR)
  180.                            << (SHL) >> (SHR) | (OR) & (AND)
  181.                            sowie Vergleiche
  182.  
  183. Als Zahlenbasis sind: . oder nix : Dezimal
  184.                       $          : Hexadezimal
  185.                       %          : Binär
  186.                       " oder '   : ASCII
  187.  
  188. Als interne Variablen sind ^^DATE (GEMDOS-Datum), ^^TIME (GEMDOS-Zeit)
  189. * (akt.PC), ^^RSCOUNT (akt.Wert des RS-Zählers) und ^^SYMTAB (<>0, wenn
  190. Symboltabelle erzeugt wird)
  191.  
  192. Symbole  sind  max.23  Zeichen  lang.  Alle  Zeichen  sind signifikant.
  193. Erlaubt sind auch Umlaute und alle anderen Zeichen > 126.
  194.  
  195. 2.7 Tastaturkommandos
  196. Cursortasten, Backspace, etc. wie gewohnt
  197. CTRL-Y, CTRL-B, etc. wie in TEMPUS
  198. CTRL-D verdoppelt die Cursorzeile.
  199. CTRL-M/ALT-M ermöglicht das Verschieben der Zeile.
  200. CTRL-W ändert die Zahlenbasis der Zahl unter dem Cursor
  201. CTRL-U  markiert  alle  Zeichen  mit  Warnungen,  in welchen ein Symbol
  202.  definiert  ist,  welches  nirgends  benutzt wird. Damit kann man prima
  203.  unbenutzt Unterprogramme finden!
  204. ALT-Zehnerblock wie bei MS-DOS
  205. ESC+Buchstabe Abkürzung für einen Befehl
  206. CTRL-ESC  Tastaturmakro beginnen. Dann zu belegende Taste drücken. Alle
  207. folgenden  Tasten  (nicht  die Maus!) werden aufgezeichnet. Mit ALT-ESC
  208. wird die Definition abgeschlossen. Die belegte Taste kann mit CTRL-ESC,
  209. Taste, ALT-ESC wieder freigegeben werden.
  210.  
  211. 2.8 Ein paar Worte zu den Drop-Down-Menüs
  212. Mit  "Laden..."  kann  auch  ein  ASCII-Text eingeladen werden. Er wird
  213. dabei automatisch ins interne Format gewandelt.
  214. "Symbol  suchen..."  und  "Symbol ersetzen..." ermöglichen das schnelle
  215. Finden  bzw.  schnelle  Ersetzen  von  Symbolen. Dabei können z.B. alle
  216. Symbole  gefunden  werden,  die mit "M" anfangen (Maske:"M*"), ohne daß
  217. jeder MOVE-Befehl gefunden wird (wie bei ASCII-Editoren üblich).
  218. "Sprung  zu  Zeile.." ermöglich auch das Springen zu Symboldefinitionen
  219. (Eingabe:z.B."M*").
  220. Die  Dialogboxen im "Einstellungen" Menü sind zum Teil selbsterklärend,
  221. der  Rest  ist  entweder unwichtig oder zu kompliziert, als daß er hier
  222. erklärt werden könnte.
  223.  
  224. 2.9 Der Assembler
  225. Wird mit F1 aufgerufen. Treten bei der Assemblierung Fehler auf, werden
  226. alle fehlerhaften Zeilen markiert. Nach der Assemblierung kann man dann
  227. mit  CTRL-J  bzw.  Shift-CTRL-J  von  Fehler  zu  Fehler  springen. Der
  228. Assembler  speichert  die  Fehler,  die Cursorposition, die Marker etc.
  229. übrigens mit dem Sourcetext ab!
  230.  
  231. In  der Dialogbox nach (!) der Assemblierung, können noch einige Extras
  232. eingestellt werden:
  233. -Soll  eine  Symboltabelle  an das Programm gehängt werden (bzw. an den
  234.  Debugger übergeben werden)?
  235. -Ferner   kann   das   erzeugte   Programm  in  verschiedenen  Formaten
  236.  abgespeichern. Möglich sind:
  237.  DEBUGGER Sprung in den Debugger mit Programmübergabe (KEIN SPEICHERN)
  238.  STANDARD Programm abspeichern (halt ganz normal...)
  239.  DATAS    Data-Zeilen erzeugen (für OMIKRON.Basic)
  240.  ABSOLUT  Programm für eine best. Adresse (z.B. EPROM) erzeugen
  241.  BASIC    spezielles Format für Basic, welches sich selbst reloziert
  242.  OMINLINE INLINE-Zeile für OMIKRON-Basic erzeugen
  243.  PARALLEL spez.Übertragungsformat zum Amiga
  244.  SMALLDRI DRI-Format erzeugen (allerdings OHNE Importe)
  245.  GFAINLINE GFA-Inline-Format erzeugen.
  246.  FSTANDARD Fast-Load-Bit im Header setzen (ST-Magazin 11/89), sonst wie
  247.            STANDARD
  248.  
  249. 2.10 Pseudo-Opcodes des Assemblers
  250. DC,  DS,  BLK,  DCB, EVEN, ALIGN, TEXT, DATA, BSS, END, =, EQU, GLOBAL,
  251. CNOP, ORG, ILLEGAL und REG
  252. wie üblich.
  253. DXSET Länge[,Füllwert] Tabelle definieren
  254. DX 'String' Tabelleneintrag auf Länge mit Füllwert aufgefüllt
  255. RS, RSRESET, RSSET, RSEVEN, RSBSS Relatives Segment
  256. OPT D+ normale Symboltabelle an
  257. OPT X+ erweiterte Symboltabelle an
  258. OPT W+ Warnungen an
  259. OPT P+ PC-relatives Programm muß erzeugt werden
  260. OPT O+ Optimierungen an
  261. Mit '-' kann etwas ausgeschaltet werden
  262. OUTPUT 'Filename' Default-Filename
  263. PATH 'Pfad' Pfad für IBYTES setzen
  264. IBYTES 'DEGAS.PI3',32000,34 Lädt ein Daten-File der Länge 32000 ab Byte
  265. 34 der Datei ein (Hier: ein Degas-Bild)
  266. BASE is' viel zu kompliziert...
  267. REPT  Anzahl,  ENDR  wiederholt  Anzahl mal den Sourcetextteil zwischen
  268. REPT und ENDR
  269. IF, ELSE, ENDC bedingte Assemblierung
  270. FAIL Assemblierung abbrechen
  271.  
  272.  
  273. 3 Der Debugger
  274. 3.1 Vorwort
  275. Es  ist eigentlich unmöglich den Debugger KURZ zu beschreiben, deswegen
  276. hier nur die wichtigsten Befehle (mit HELP kann man alle mal sehen bzw.
  277. in der Anleitung)
  278.  
  279. 3.2 Allgemeines
  280. Der  Debugger  benutzt  selber  keine I/O-Routinen des TOS, d.h. er ist
  281. ziemlich unanfällig gegen Abstürze. Bei Lade-Operationen u.ä. wird aber
  282. dann natürlich doch auf's GEMDOS zurückgegriffen.
  283.  
  284. Er  verwaltet  eine eigene Bildschirmseite, sodaß Programm und Debugger
  285. sich nicht auf einer gemeinsamen Seite tummeln.
  286.  
  287. Das Debugging kann sowohl mit Tastatur und Maus erfolgen.
  288.  
  289. Der  Debugger  kann  resident  im  RAM gehalten werden, indem er in den
  290. AUTO-Ordner  kopiert  wird  oder mit dem Befehl RESIDENT gehalten wird.
  291. Der  Debugger  kann  dann  mit  CALL.PRG  aufgerufen  werden.  Auch der
  292. Assembler  kann  auf  den  Debugger  zugreifen  (Er  kann ihn aber auch
  293. nachladen).
  294.  
  295. 3.3 Die Bedienung
  296. Die  2  oberen  Zeilen  entsprechen  den  Funktionstasten (mit und ohne
  297. Shift).  Die  3  Folgezeilen stellen die Registerinhalte und Flags dar.
  298. Alle Teilen in diesen 5 Zeilen können mit der Maus ausgelöst werden.
  299.  
  300. Die restlichen (max.20 Zeilen) sind frei veränderbar. Hier erfolgen die
  301. Eingaben, die Ausgaben. Hier tobt das Leben...
  302.  
  303. Die  Tastaturbelegung  (Cursortasten, CTRL-M, CTRL-1, etc.) ist ähnlich
  304. der des Assemblers.
  305.  
  306. Eingaben  erfolgen  stets  ab  Zeilenanfang  bzw.  hinter  der Hexzahl.
  307. Leerzeichen werden ignoriert bzw. dienen als Trenner.
  308.  
  309. Wenn  der  Assembler  den  Debugger  aufgerufen hat, kann man CTRL-HELP
  310. zurückspringen.  Dabei  wird der aktuelle PC-Stand in eine Zeilennummer
  311. UMGERECHNET.  D.h.  wenn  ein Programm beim Debuggen abgestürzt ist und
  312. der  PC im Programm steht, kann man CTRL-HELP zur entsprechenden Stelle
  313. im Sourcetext springen.
  314.  
  315. Mit  SHIFT-SHIFT  kann  ein  laufendes  Programm angehalten werden. Der
  316. Ring-Indikator  funktioniert  allerdings  auch.  Der Debugger ist zudem
  317. RESETFEST. Als Notbremse ab und zu sinnvoll.
  318.  
  319. F1  - Führt den nächsten Befehl aus
  320. SF1 - Bricht beim nächsten Sprungbefehl ab. Simuliert den Tracemode des
  321.       68020 Prozessors.
  322. F2  - Setzt hinter den nächsten Befehl einen Breakpoint und startet das
  323.       Programm.  Damit  kann  z.B. schnell ein Unterprogramm ausgeführt
  324.       werden oder ein DBRA beendet werden.
  325. SF2 - nicht weiter wichtig
  326. F3  -  Startet  das  Programm und bricht beim nächsten RTS ab. ACHTUNG!
  327.       Wenn mit MOVEM Werte auf dem Stack gerettet werden => Bomb!
  328. SF3 - wie F3 nur bis zum nächsten RTE
  329. F4  - Führt den nächsten TRAP NICHT aus, sondern springt in ihn hinein.
  330. SF4 - Programm ohne Endebedingung starten
  331. F5  - nächsten Befehl ignorieren, d.h. überspringen
  332. SF5 - Insert/Overwrite toggeln
  333. F6  - akt.Directory anzeigen
  334. SF6 - die umgerechneten Marker des Assemblers anzeigen.
  335. F7  - Memorydump ab dem PC
  336. SF7 - Breakpoints anzeigen
  337. F8  - Disassemble mit Dump ab PC
  338. SF8 - Info über die Speicherbelegung
  339. F9  - List ab PC (mit Symbolen, wenn vorhanden)
  340. SF9 - Screen löschen, Warmstart
  341. F10 - Umschalten der Bildschirmseite (Toggeln)
  342. SF10- Quit mit Sicherheitsabfrage
  343.  
  344. 3.4 Die Befehle
  345. Alle  Befehle können auf ein Minimum abgekürzt werden. An ALLEN Stellen
  346. sind als Parameter beliebige Ausdrücke erlaubt (d.h. Formeln etc.)
  347.  
  348. ?Term   Rechnet den Term aus
  349. Term   darf  (bis  auf  Vergleiche)  alle  Operationen  des  Assemblers
  350. enthalten.  Zudem  ist mit {400}.l eine indirekte Adressierung möglich.
  351. ".l" gibt dabei die Zugriffsbreite an.
  352. Alle  Zahlen werden als HEXZAHLEN angesehen. Dezimalzahlen sind mit "."
  353. einzuleiten.  Bei  einer  Symboltabelle  kann man mit ".Symbolname" auf
  354. dieses zugreifen.
  355.  
  356. Definierte Variablen (ein Teil davon)
  357. ^D0-^D7 Die Register D0-D7
  358. ^A0-^A7 Der Register A0-A7
  359. PC, USP, SSP, SR, CCR, SP Die gleichnamigen Register
  360. ^M0-^M9 Die umgerechneten Marker des Assemblers
  361.  
  362. Alle obigen Variablen sind mit
  363. LET Variable=Term änderbar.
  364. LET läßt sich mit "~" abkürzen.
  365.  
  366. Noch ein paar Read-Only-Variablen:
  367. TEXT, DATA, BSS, START, END, BASEPAGE, BP, ACT_PD, MEMBASE, SAVEAREA
  368.  
  369. Es gibt noch etwa 20-30 weitere nicht so wichtige Variablen.
  370.  
  371. BREAKPOINT [Nummer=Adresse[,[*|=Wert|Anzahl|?Bedingung]|K]]
  372. Breakpoints anzeigen, löschen, ändern, setzen
  373.  
  374. B5=PC+.100 Breakpoint 5 (0-15 ist mgl) auf Adresse PC+100 setzen
  375. B K        Alle Breakpoints löschen
  376. B          Alle Breakpoints anzeigen
  377. BK3        Breakpoint 3 löschen
  378.  
  379. B0=Adr,Anzahl   : Breakpoint bricht beim Anzahl. Erreichen ab.
  380. B0=Adr,*        :  Breakpoint  bleibt auch nach dem Erreichen erhalten.
  381.                   Normale Breakpoints werden automatisch gelöscht.
  382. B0=Adr,=Wert    :  Zähler  auf  die  Adresse  Adr  setzen. In ^BC0 wird
  383.                   hochgezählt wie oft die Adresse erreicht wurde.
  384. B0=Adr,?Term    : Bedingter BKPT, Abbruch, wenn Term<>0
  385.    z.B. B0=Adr,?^D0=4711 => Abbrucht, wenn PC=Adr UND D0=$4711
  386. GO [Adr]        : Programm an Adresse Adr, bzw. PC starten
  387. TRACE           : Wie F1
  388. SHOWMEMORY Term : 16 Bytes ab Term stets anzeigen
  389. UNTRACE [Adr]   : solange Tracen, bis Bedingung erfüllt
  390. IF Term         : Bedingung für UNTRACE
  391. OBSERVE Trapno,Funkno : Abbruch, wenn Trapno(Funktion) ausgeführt wird.
  392.    z.B. OBSERVE 14,8  : Abbruch bei XBIOS(8) = Floprd()
  393. CLS             : 2.Bildschirmseite löschen
  394. MOUSEON
  395. MOUSEOFF        : VDI-Maus an/aus
  396. |Befehl         : Befehl ausführen (zum Testen echt prima)
  397. LEXECUTE  "Filename"[,"Commandline"]  :  Programm  ausführbar laden (=>
  398.                   Pexec()) Dann mit GO zu starten.
  399. LOAD "Filename"[,Adresse] : File nicht ausführbar laden
  400. SAVE ["Filename"[,Adresse[,Endadresse]]] : File abspeichern
  401. DIR Pfadmaske   : Directory anzeigen
  402. Pbefehl         : P vor einem Befehl leitet diesen zum Drucker um
  403. FOPEN Filename
  404. Fbefehl         : Ausgabe eines Befehls in eine Datei
  405. FCLOSE
  406. ERASE, KILL Filename : Datei löschen (mit Jokern!)
  407. FREE            : Freier Hauptspeicher
  408. FREE Drive      : Freier Platz auf einem Laufwerk
  409. MKDIRECTORY Name : Ordner erstellen
  410. RMDIRECTORY Name : Ordner löschen (wenn leer)
  411. NAME oldname,newname : File umnennen
  412. FATTRIBUT Filename,attribut : File-Attribut ändern/setzen
  413. FORMAT DS/SS,Laufwerk : Disk formatieren
  414. TYPE Filename   : ASCII-Datei anzeigen (SPACE hält Ausgabe an)
  415. READSEKTOR Track,Sektor,Seite,Adresse,Laufwerk (0 oder 1)
  416.                 Sektor mit XBIOS(8) einlesen
  417. WRITESEKTOR s.o.
  418.                 Sektor mit XBIOS(9) schreiben
  419.  
  420.  
  421. Alle  in  diesem  Abschnitt  angegebenden Befehle erlauben den gleichen
  422. Syntaxbei  den  Parametern, der deswegen an dieser Stelle erklärt wird,
  423. und im folgenden nur noch mit [Parameter] bezeichnet wird.Es gilt also:
  424.  
  425. [Parameter] = [Von][[,]#[Zeilen]|,Bis|[,][Bytes[]]]
  426.  
  427. Es   sind   also  alle  Parameter  wahlfrei,  d.h.  man  braucht  keine
  428. Parameterangeben. Der Debugger nimmt dann vorgegebene interne Werte.
  429.  
  430. Wenn   der   Ausdruck  "Von"  fehlt,  wird  ab  der  aktuellen  Adresse
  431. z.B.disassembliert.  Die aktuelle Adresse ist die Zahl am Zeilenanfang,
  432. bzw.wenn diese fehlt, die zuletzt benutzte Adresse.
  433.  
  434. Als  Endadresse  gilt  der  Ausdruck  "Bis", der jedoch nicht angegeben
  435. werdenmuß.  Wird  statt  "Bis"  ein "#" angegeben wird genau eine Zeile
  436. ausgegeben. Ein dem "#" folgender Term, gilt als Zeilenanzahl.Es können
  437. somit z.B. genau 8 Zeilen ausgegeben werden. Es werden jedochmaximal 99
  438. Zeilen  ausgegeben.Fehlt die Endangabe gänzlich, werden (normalerweise)
  439. 16  Zeilen ausgegeben.Die Anzahl läßt sich jedoch einstellen, indem man
  440. die Variable "Lines" entsprechend ändert.Die letzte Möglichkeit ist die
  441. Angabe  der  Byteanzahl  in  eckigen Klammern.Sie kann genauso, wie die
  442. Zeilenanzahl  angegeben werden. Die "]" ist optional, d.h. man kann sie
  443. auch weglassen.
  444.  
  445. Beispiel:
  446. "d text #5"
  447. Disassembliert 5 Zeilen ab Anfang des geladenen Programms.
  448.  
  449. Beispiel:
  450. "m data[30]"
  451. Ein Memorydump des DATA-Segments (48 Bytes lang).
  452.  
  453. DISASSEMBLE [Parameter] Disassemble mit Dump
  454.                         Dump kann geändert werden!
  455. LIST [Paramter]         Disassemble ohne Dump mit Symbolen
  456.                         Opcodes  können  geändert  werden (RETURN nicht
  457.                         vergessen)
  458. SYMBOLTABLE [Parameter] evtl. vorhandene Symboltabelle anzeigen
  459. MEMORY[.B|.W|.L][Parameter] Memorydump mit Ausgabebreite (Änderbar)
  460. ASCII [Parameter]       ASCII-Dump (Änderbar)
  461.  
  462. FIND  [Von,Bis],Terme{,Term}  geladenes  Programm  oder Speicherbereich
  463.                         nach den Termen durchsuchen
  464. HUNT  s.o.              wie Find, jedoch nur auf geraden Adressen
  465. ASCFIND   [Von,Bis],String   ASCII-Suche  im  Disassemblerlisting  (mit
  466.                         Jokern). Langsam, aber ab und zu praktisch
  467. CONTINUE                Hunt,  Find  oder  ASCFIND fortsetzen, wenn mit
  468.                         ESC abgebrochen
  469. INFO                    mal ausprobieren
  470. SYSINFO                 auch mal ausprobieren
  471. MOVE, COPY Von,Bis,Nach Speicherblock kopieren
  472. FILL Von,Bis,Term{,Term} Speicherblock füllen
  473. CLR [Von,Bis]           Speicherblock löschen (oder alles)
  474. COMPARE Von,Bis,Adr     Bereich Von,Bis mit Bereich ab Adr vergleichen
  475. EXIT, QUIT, SYSTEM      Debugger verlassen
  476. RESIDENT                Debugger resident halten
  477. SET, LET, ~             siehe oben
  478. RESET ALL               Debugger-Kaltstart
  479. HELP                    Gibt  alle  Befehle  unsortiert  aus  (wie  man
  480.                         sieht, ein paar mehr als hier beschrieben)
  481.  
  482. 4 Was bringt die Zukunft?
  483. Nun,  daß hängt sehr vom Erfolg der Shareware-Konzeptes ab. Sicher, wir
  484. machen  weiter,  aber  ob  wir  einen  68020/30  Assembler mit FPU- und
  485. PMMU-Support (Atari TT) mit Makros, lokalen Symbolen etc. als Shareware
  486. rausbringen? Nun, wenn es sich lohnt immer..
  487.  
  488. Was kommt denn als nächstes?
  489. Erstmal  soll man für das DRI-Linkformat die PC-relativen Optimierungen
  490. über  Segmentgrenzen  abschalten können (speziell für Laurenz Prüßner).
  491. Dann können keine Probleme mehr beim Linken auftreten.
  492. Der Sourcecode-Debugger ist schon ganz nett (wenn auch bei Sourcetexten
  493. mit  >10000 Zeilen recht langsam => Arbeit, Arbeit,... ), kann man doch
  494. jederzeit gucken, an welcher Stelle der PC im Sourcetext steht, ohne in
  495. den  Assembler  zurückzumüssen.  Die Remarks zu sehen ist ja auch nicht
  496. schlecht.  Und  das  tollste:  das  Ganze  spart  auch noch Platz! Beim
  497. normalen    Debuggen    wird    eine   Symboltabelle   benötigt,   beim
  498. Sourcecode-Debugging  wird  dagegen  laufend  umgerechnet, wo der PC im
  499. Sourcetext  steht  (und  das recht fix (bei Sourcetexten <10000 Zeilen,
  500. s.o.)).
  501.